iT邦幫忙

2025 iThome 鐵人賽

DAY 26
0
生成式 AI

LLM 學習筆記 - 從 LLM 輸入問題,按下 Enter 後會發生什麼事?系列 第 26

Day 26. 線性代數:從數學再看一次 LLM 中的語言

  • 分享至 

  • xImage
  •  

最後幾天,想留給學習 LLM 中心中最軟的一塊 - 數學,固然從概念、從實做交叉切入了 LLM 是怎麼產生,但有些數學觀念在我心裡依舊模模糊糊,尤其作為一個連線性代數跟微積分印象還停留在大學之前,從那之後就是一片空白的我,想試著在鐵人賽期間稍微撿起一點點

向量

(受限於平台無法呈現 LaTex 可能會有大量符號)

從最一開始的概念提到一串數學編碼、到後來在實做開始進行向量計算,現在要回過頭看數學中的向量是什麼意思?

向量可以是一個以原點為起點,帶有方向的數值、可以是一個 Array,而數學角度看向量是更抽象的,只要兩個方框內的數字可以進行運算就是向量。向量的加法代表著,今天在空間中的移動總共多少;純數乘法代表著空間上的縮放。

而如果今天將座標系當成一個單位為 1, 1 的表格系統時,可以很單純的說 [2, 3] 的向量代表 2×1 單位 x 方向 + 3×1 單位 y 方向但可以再抽象一層,x 軸是 $\hat{i}$、y 軸是 $\hat{j}$ 的存在,而過去的 [2, 3] 實際上是 $2 * \hat{i} + 3 * \hat{j}$。這樣的抽象關係,帶給向量很彈性的轉換觀點。我們只要改變 $\hat{i}$ 跟 $\hat{j}$ 的形狀,就可以改變原先在最普通 2×1 單位 x 方向 + 3×1 單位 y 方向的直線看起來的模樣。

如果用一個視覺化的方式來想像, $\hat{i}$ 跟 $\hat{j}$ 的變化就像是網格系統發生形變,形變可以像是地球儀投影一般的曲線,但從最簡單的線性變換來說,應該要保持原點不變且網格保持直線跟間格均等。

所以今天向量間的乘法是什麼?是座標系統的形變 $\hat{i}$ 跟 $\hat{j}$ 各自從 [1,0] [0,1] 是原本的垂直的座標軸轉向新的向量,有 [a,c] 的 $\hat{i}$ 與 [b,d] 的 $\hat{j}$。所以今天有一個向量 [x,y] 他要有 [a,c] 的 $\hat{i}$ 與 [b,d] 的 $\hat{j}$ 就會發生 x[a, c] + y[b, d] 進一步再縮寫如下:

$$
\begin{bmatrix} x \ y\end{bmatrix} \begin{bmatrix} a & b \ c & d\end{bmatrix} = \begin{bmatrix} ax + by \ cx +dy \end{bmatrix}
$$

這樣的轉換是可以被合成的,如果今天是兩次的轉換:

$$
\begin{bmatrix} a_1 & b_1 \ c_1 & d_1 \end{bmatrix} \begin{bmatrix} a_2 & b_2 \ c_2 & d_2 \end{bmatrix}
$$

一樣先計算 $\hat{i}$,再計算 $\hat{j}$

$$
\hat{i} = \begin{bmatrix} a_2 \ c_2\end{bmatrix} \begin{bmatrix} a_1 & b_1 \ c_1 & d_1 \end{bmatrix} = \begin{bmatrix} a_1 \ c_1 \end{bmatrix} a_2 + \begin{bmatrix} b_1 \ d_1 \end{bmatrix} c_2 \ \hat{j} = \begin{bmatrix} b_2 \ d_2\end{bmatrix}\begin{bmatrix} a_1 & b_1 \ c_1 & d_1 \end{bmatrix} = \begin{bmatrix} a_1 \ c_1 \end{bmatrix} b_2 + \begin{bmatrix} b_1 \ d_1 \end{bmatrix} d_2 \ \begin{bmatrix} \hat{i} & \hat{j} \end{bmatrix} = \begin{bmatrix} a_2* a_1 + b_1 * c_2 & b_2 * a_1 + b_1 * d_2 \ c_1 * a_2 + d_1 * c_2 & c_1 * b_2 + d_1 * d_2\end{bmatrix}
$$

模型與向量的關係

目前乍看下來,如果只是說在模型裡要找出一個最好的參數解,直到這裡似乎跟上述向量八竿子打不著,沒有辦法直覺的解釋在機器學習中會需要線性代數。與其說機器學習需要線性代數,不如說,線性代數可以計算機器學習中,大量 activation function 的求解問題,同時提供更直觀的看法:

以一組二元一次方程式的問題來舉例,我們過去求二元一次的解,以下面的方程式為例,我們可能會讓下面的方程式 * 2,接著將兩個方程式相減,2y - 6y = -4 -(-2),於是知道 y = 0.5,再帶入反推 x = -2.5。

$$
2x+2y= -4\
1x+3y= -1\
$$

而他的計算過程恰恰好可以等於下列矩陣的計算:

$$
\begin{bmatrix} 2 & 2 \ 1 & 3 \end{bmatrix} \begin{bmatrix} x \ y \end{bmatrix} = \begin{bmatrix} -4 \ -1 \end{bmatrix}
$$

而從前面我們知道,上面的矩陣計算的算法為:

$$
\hat{i} = \begin{bmatrix} 2 \ 1 \end{bmatrix} \begin{bmatrix} x \ y \end{bmatrix} \ \hat{j} =\begin{bmatrix} 2 \ 3 \end{bmatrix} \begin{bmatrix} x \ y \end{bmatrix}\ \begin{bmatrix} \hat{i} \ \hat{j} \end{bmatrix} = \begin{bmatrix} 2x+1y \ 2x+3y \end{bmatrix} = \begin{bmatrix} -4 \ -1 \end{bmatrix}
$$

除了「哇,剛好上面的方程式可以透過線性代數的計算方式計算耶!」這種巧合外,這也代表上面二元一次方程式的問題,可以被從前面講的 $\hat{i}$ 跟 $\hat{j}$ 角度來思考:我們將上面的矩陣計算代表為

$$
A\vec{x}=\vec{v}
$$

以上面的計算為例,上面的方程式求解問題不恰恰好等於先有 A 這個 $\hat{i}$ 跟 $\hat{j}$ 的形變,接著試圖找出一個 $\vec{x}$ 經過 A 座標系統的轉換後,可以等於 $\vec{v}$ 嗎?而今天模型在建立時,最大的差別在,我們不知道 A 是什麼,需要透過 training 的方式找出最好的 A。所以從方程式來看,打造一個模型意味著找出一個最能預測的方程組,但這些方程組在空間裡面的含意,其實是找出一個能將輸入轉換為我們期待的輸出的轉換矩陣。


上一篇
Day 25. 實做小結:從 LLM 輸入問題後、按下 Enter 後會發生什麼事?
下一篇
Day 27. RELU & GELU:從數學看 Activation Function
系列文
LLM 學習筆記 - 從 LLM 輸入問題,按下 Enter 後會發生什麼事?30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言